Azure Key Vault 连接字符串和 N 层设计
Azure Key Vault Connection Strings and N-Layered Design
此问题与以下可能有帮助的post相关:Azure DevOps CI/CD 和从源代码管理中分离连接字符串
我目前正在基于 Imar Spaanjaars 的一篇名为 ASP.NET N-Layered Applications
的文章开展 N 层项目
我正在尝试实现 Azure Key Vault,我想你可以说,从应用程序本身抽象秘密。
目标
我想使用这个 N 层概念实现 Azure Key Vault。我有一个示例项目位于 NLayer-Spaanjaars.ContactManager
问题
我正在尝试弄清楚如何使用 Key Vault Syntax Reference 通过 Entity Framework 正确检索机密(连接字符串)。
更新2019/2/22
如评论中所述,我试图找出如何在运行时 inject
或 override
连接字符串与非核心上的 Key Vault
的值.Net Web API
应用
我通过像这样修改我的 DbContext 来设法让它工作:
public class MyContext : BaseDataContext {
public MyContext()
: this(GetDbConnection()) {
}
public MyContext(string connectionString)
: base(connectionString) {
}
public static string GetDbConnection() {
// Get the value from the AppSettings section in the Web.config file that will be updated by Key Vault
var connectionString = ConfigurationManager.AppSettings["{key-vault-secret-name}"];
// Return the connection string value above, if blank, use the connection string value expected in the Web.config
return string.IsNullOrWhiteSpace(connectionString) ? "MyContext" : connectionString;
}
}
此问题与以下可能有帮助的post相关:Azure DevOps CI/CD 和从源代码管理中分离连接字符串
我目前正在基于 Imar Spaanjaars 的一篇名为 ASP.NET N-Layered Applications
的文章开展 N 层项目我正在尝试实现 Azure Key Vault,我想你可以说,从应用程序本身抽象秘密。
目标
我想使用这个 N 层概念实现 Azure Key Vault。我有一个示例项目位于 NLayer-Spaanjaars.ContactManager
问题
我正在尝试弄清楚如何使用 Key Vault Syntax Reference 通过 Entity Framework 正确检索机密(连接字符串)。
更新2019/2/22
如评论中所述,我试图找出如何在运行时 inject
或 override
连接字符串与非核心上的 Key Vault
的值.Net Web API
应用
我通过像这样修改我的 DbContext 来设法让它工作:
public class MyContext : BaseDataContext {
public MyContext()
: this(GetDbConnection()) {
}
public MyContext(string connectionString)
: base(connectionString) {
}
public static string GetDbConnection() {
// Get the value from the AppSettings section in the Web.config file that will be updated by Key Vault
var connectionString = ConfigurationManager.AppSettings["{key-vault-secret-name}"];
// Return the connection string value above, if blank, use the connection string value expected in the Web.config
return string.IsNullOrWhiteSpace(connectionString) ? "MyContext" : connectionString;
}
}